//
//  FLForceDirectedLayout.h
//  SpringGraph Test
//
//  Created by Jack Herrington on 5/30/10.
//  Copyright 2010 Myself. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "FLIterator.h"
#import "FLDataProvider.h"
#import "FLNode.h"

@interface FLForceDirectedLayout : NSObject <FLIterator> {
	id<NSObject, FLDataProvider> _provider;
	float _damper;
	float _maxMotion;
	float _lastMaxMotion;
	float _motionRatio;
	bool _damping;
	float _rigidity;
	float _newRigidity;
	FLNode *_dragNode;
	float _newMaxMotion;
	float motionLimit;
}

@property (retain) id<NSObject, FLDataProvider> provider;
@property (retain) FLNode *dragNode;
@property (assign) float rigidity;
@property (assign) float motionLimit;

- (FLForceDirectedLayout *)initWithProvider:(id<NSObject, FLDataProvider>)provider;

- (void)reset;
- (bool)tick;

@end
